OpenGL ES 의 기본 개념 두 번째 :: OPEN GL ES[SSISO Community]
 
SSISO 카페 SSISO Source SSISO 구직 SSISO 쇼핑몰 SSISO 맛집
추천검색어 : JUnit   Log4j   ajax   spring   struts   struts-config.xml   Synchronized   책정보   Ajax 마스터하기   우측부분

OPEN GL ES
[1]
등록일:2018-06-24 15:38:59 (0%)
작성자:
제목:OpenGL ES 의 기본 개념 두 번째

OpenGL ES 두 번째 이야기


- 프래그먼트 쉐이더에 대해서

  프래그먼트 쉐이더란 프래그먼트에서 실행되는 메소드를 구현한다. 


먼저 예제 코드를 하나 보면


[그림 1] fragment shader example code

그냥 간단한 예제 코드이다. 이 코드는 아무것도 출력을 하지 않는데 그 이유는 출력 변수가 gl_FragColor뿐이기 때문이다. 자세한 것은 구글링해서 정리해 놓겠다.



[그림 2] Fragment Shader

varying 변수 - 보간법을 사용하여 각 프래그먼트에 대해 래스터 변환에 의해 생성된 정점 쉐이더의 결과

uniforms - 프래그먼트 쉐이더에서 사용하는 텍스쳐를 표현하는 uniform의 특정 타입을 말한다.

shader program - 프래그먼트 쉐이더 프로그램 소스 코드 또는 실행 코드를 말한다.


프래그먼트 쉐이더는 프래그먼트를 삭제하거나 gl_FragColor로 참조되는 컬러값을 생성할 수 있다.래스터 변환에서 생성된 깊이, 컬러, 스텐실, 화면 위치는 프래그먼트 연산 단계에 입력이 된다. 


-- 프래그먼트 연산에 대해서

프래그먼트 쉐이더 다음에 나오는 단계이다. 화면 좌표로 래스터 변환에 의해 생성된 프래그먼트는 프레임 버퍼내 위치로만 픽셀을 수정을 할 수 있다.. 영어가 너무 어렵군..



[그림 3] 프래그먼트 연산

[그림 3]은 프래그먼트 연산을 간단하게 나타낸것이다.

Pixel Ownership Test - 프레임버터에서 위치의 픽셀이 OpenGL ES에 현재 소유가 되어 있는지를 결정을 한다.    

                                         이게 무슨 말이냐면 쉽게 설명해서 OpenGL ES 프레임버퍼 원도우를 디스플레이 하는  

                                         원도우가 다른 원도우에 가려진다면  디스플레이 하지 않는다는 뜻이다.

Scissor Test - OpenGL ES Status 부분으로 정의된 시저 사각형 범위 내에 좌표가 정의가 되었는지를 결정한다. 

                        프래그먼트가 시저 영역 밖에 있다면 프래그먼트를 버린다.

Stencil and Depth Test - 프래그먼트가 거부될지 받아들여들일지를 결정하기 위해 입력되는 프래그먼트의 

                                             Stencil and Depth 테스트를 실행한다.

Blending - 새로 생성된 프래그먼트 컬러 값과 위치에서 프레임버퍼에 저장된 값을 결합한다.

Dithering - 프레임버퍼에서 컬러 값을 저장하는데 한정된 정밀도를 이용하여 발생할 수 있는 아티펙트를 최소화

                    하는데 사용할 수 있다.

프래그먼트 연산의 맨 마지막은 프래그먼트를 삭제하거나 프래그먼트 컬러, 깊이, 스텐실 값을 x,y좌표에서 프레임버퍼에 쓰는 것이다. 


자료 출처는 [Addison Wesley] OpenGL ES 2.0 Programming Guide 원서에서..

[본문링크] OpenGL ES 의 기본 개념 두 번째
[1]
코멘트(이글의 트랙백 주소:/cafe/tb_receive.php?no=34661
작성자
비밀번호

 

SSISOCommunity

[이전]

Copyright byCopyright ⓒ2005, SSISO Community All Rights Reserved.